broadway: Prune fully clipped render nodes
authorAlexander Larsson <alexl@redhat.com>
Wed, 26 Aug 2020 16:08:00 +0000 (18:08 +0200)
committerAlexander Larsson <alexl@redhat.com>
Wed, 26 Aug 2020 16:08:00 +0000 (18:08 +0200)
commitd57e6b754f00bf9ec6e49812f57195c66a8a6f9e
tree0c4f3acd36b9520691a631ccc29386ecc2838fe9
parent4b1ea7c4a1c64ca52d844cfa41fc412c4917bdb6
broadway: Prune fully clipped render nodes

If some node is fully outside the clip region we don't send it to the daemon.
This helps a lot in how much data we send for scrolling viewports.

However, sending partial trees makes node reuse a bit more tricky. We
can't save for reuse any node that could possibly clip different depending on
the clip region, as that could be different next frame. So, unless the
node is fully contained in the current clip (and we thus know it is not
parial) we don't allow reusing that next frame.

This fixes #3086
gdk/broadway/broadway-protocol.h
gsk/broadway/gskbroadwayrenderer.c